約 4,290,862 件
https://w.atwiki.jp/rubyocho/pages/26.html
インスタント Rails インストール InstantRails.exeの起動 PostgreSQL用にパスを設定 Rubyコンソールを起動 PostgreSQL用Railsライブラリを導入 インストール Think IT Ruby on Rails入門 第2回:すぐできるアプリケーション作成 InstantRails.exeの起動 PostgreSQL用にパスを設定 use_ruby.cmd CD C \InstantRails PATH C \InstantRails\ruby\bin;C \InstantRails\mysql\bin;\ C \Program Files\PostgreSQL\8.2\bin;\ C \Program Files\PostgreSQL\8.2\lib;%PATH% cd rails_apps Rubyコンソールを起動 PostgreSQL用Railsライブラリを導入 検索 C \InstantRails\rails_apps gem search postgres --remote *** REMOTE GEMS *** postgres (0.7.1) The extension library to access a PostgreSQL database from Ruby. postgres-pr (0.4.0, 0.3.6, 0.3.5, 0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.2.2, 0.2.1, 0.2.0, 0.1.1, 0.1.0, 0.0.1) A pure Ruby interface to the PostgreSQL ( gt;= 7.4) database ruby-postgres (0.7.1.2006.04.06, 0.7.1.2006.04.05, 0.7.1.2005.12.21, 0.7.1.2005.12.20, 0.7.1.2005.12.19, 0.7.1.2005.11.27, 0.7.1.2005.11.26, 0.7.1.2005.11.24, 0.7.1.2005.11.23) Ruby extension library providing an API to PostgreSQL インストール gem install ruby-postgres --remote gem install postgres-pr --remote リスト C \InstantRails\rails_apps gem list postgres *** LOCAL GEMS *** postgres-pr (0.4.0) A pure Ruby interface to the PostgreSQL ( = 7.4) database ruby-postgres (0.7.1.2006.04.06) Ruby extension library providing an API to PostgreSQL
https://w.atwiki.jp/maimuzo/pages/31.html
maimuzo的ベストプラクティス 前提 定型手順はこの流れで細かいところを調整ぐらいで使えるように 開発マシンと本番マシンは別の想定。 開発マシンではdevelopment環境、本番マシンではproduction環境を使用。 開発マシンから本番マシンへのデプロイはcapistranoを使う。 ソースコード管理はsubversionを使う。リポジトリはsubversionサーバ用のマシンに置く想定。 開発マシンではscript/serverで動かす。本番マシンではフロントをApache+mod_ploxy_balancerで、バックをmongrel_cluster構成とする。 開発マシンにはNetBeans6.0以上にrubyプラグイン入れとけ。個人的にはAptenaIDE+Radrailsより、NetBeansの方が上かと。 リポジトリを用意する subversionのサーバにログインして $ svnadmin create --fs-type fsfs /svn/hogeproject んで、/svn/hogeproject/confの中のsvnserve.confとかpasswdあたりをいじっておく。 railsアプリを作ってsubversionに入れておく まずはsubversion用のディレクトリにアプリを生成し、コミットする。 $ mkdir hogeproject $ cd hogeproject $ mkdir trunk tags branches $ cd trunk $ rails hogeapp $ cd .. $ svn import . svn //domain/svn/hogeproject/ -m "initial" --username user 登録できたら、元ディレクトリをどけて(バックアップとして)、チェックアウトする。 $ mv mv hogeproject hogeproject_backup $ svn checkout svn //domain/svn/hogeproject/trunk/ . logとtmpのいらないファイルを無視する $ cd hogeapp $ svn remove ./log/* $ svn commit -m "remove log file" $ svn propset svn ignore "*.log" log/ $ svn update log/ $ svn commit -m "add ignore log/*" $ svn remove tmp/* $ svn propset svn ignore "*" tmp/sessions tmp/cache tmp/sockets $ svn update tmp/ $ svn commit -m "add ignore tmp/" 先に入れておくべきgem $ gem install mysql gettext refe mongrel mongrel_cluster capistrano rak rapt rspec rocketstarter sqld4r sqlite3-ruby -y ※gemのgettextはGNU gettextのバインディングではなく、再実装らしいので、gettextのライブラリ(yum install gettextみたいな)は必要ないみたい。 なにはなくとも ./config/environment.rbに $KCODE = u require jcode require gettext/rails を追加 app/controllers/application.rbのクラス内に init_gettext "app-name" #←ここはrakeファイル内のMY_APP_TEXT_DOMAINと一致させる必要がある を追加 require rubygems require gettext/utils desc Update pot/po files. task updatepo do MY_APP_TEXT_DOMAIN = "app-name" #←ここはinit_gettextで指定したテキストドメインと一致させる必要がある MY_APP_VERSION = "app-name 1.0.0" GetText.update_pofiles(MY_APP_TEXT_DOMAIN, Dir.glob("{app,lib}/**/*.{rb,rhtml}"), MY_APP_VERSION)end end desc Create mo-files task makemo do GetText.create_mofiles(true, po , locale ) end po/mo用のrakeタスクをRakefileに追加 rake makepoしたら mkdir po/ja cp po/hoge.pot po/ja/hoge.po として編集。ディレクトリ名は日本語ならja。jpとしたら泣けるはず。 翻訳に飽きたら rake makemo しておく。 ./config/database.ymlのdeveropmentとtestとproductionに encoding UTF8 と各種設定情報を追加 $ capify して./config/deploy.rbを埋めておく。 Capistrano参照。 $ mongrel_rails cluster configure して./config/mongrel_cluster.rbに本番環境用の設定を埋めておく。(cap deployでspinを使うなら必要無い) memcached使いたかったら sudo gem install memcache-client で入れて、config/production.rbに config.action_controller.fragment_cache_store = mem_cache_store config.action_controller.session_store = mem_cache_store を追加する。development.rbには入れなくてよいかもらしい。 ちなみにフロントエンドのapache 2.2系でmod_ploxy_balancerを使った構成は NameVirtualHost 192.168.1.3 80 VirtualHost 192.168.1.3 80 DocumentRoot "/sites/yourdomain.com/current/public" ServerName yourdomain.com CustomLog /var/log/apache2/yourdomain.com.proxy_access.log combined ErrorLog /var/log/apache2/yourdomain.com.error.log Directory "/sites/yourdomain.com/current/public" allow from all Options +Indexes FollowSymLinks AllowOverride all Allow from all Order allow,deny /Directory DirectoryIndex index.html # forward proxy off ProxyRequests Off # don t use reverse-proxy for /engine_files /images /javascripts /stylesheets ProxyPass /engine_files ! ProxyPass /images ! ProxyPass /javascripts ! ProxyPass /stylesheets ! # other access are proxying mongrel server ProxyPass / balancer //yourcluster/ timeout=2 nofailover=On ProxyPassReverse / http //localhost 4000/ ProxyPassReverse / http //localhost 4001/ /VirtualHost #reverse proxy cluster member Proxy balancer //yourcluster BalancerMember http //localhost 4000 loadfactor=10 BalancerMember http //localhost 4001 loadfactor=10 /Proxy Location /balancer-manager SetHandler balancer-manager Order Deny,Allow Deny from all Allow from 192.168.1.2 /Location Location /server-status SetHandler server-status Order Deny,Allow Deny from all Allow from 192.168.1.2 /Location ExtendedStatus On こんな感じ。 192.168.1.3が本番マシンのIPで、 192.168.1.2は本番マシンをリモートメンテするためのマシンのIPを想定。 詳しくはapacheのマニュアル読むべし。 ※ただし現在はPassengerがオススメ その他雑記・メモ AR.update_attributesでの一括アップデート時に、特定カラムを保護する attr_protected brockcolumn HTTP headerを書き換える @response.headers[ name ] = value @headers[ name ] = value キャラクタセット変換(HTML headerは自分でなんとかすること) before_filter set_characterset after_filter translate_body def set_characterset @headers[ Content-Type ] = text/html; charset=Shift-JIS end def translate_body @response.body = NKF.nkf( -Ws -m0 -x params for nkf , @response.body) end 共用railsサーバ用のログローテーション設定(細かい設定理解してないので注意) /etc/logrotate.d/rails_domains /var/www/domains/*/*/shared/log/* { weekly rotate 4 copytruncate compress notifempty missingok } crlfをbrタグに置き換える application_helperなどで def hbr(str) str = html_escape(str) str.gsub(/\r\n|\r|\n/, " br / ") end として、テンプレートで %= hbr @log.text % 行毎にCSSなどを切り替える cycleメソッドを使えばよい。引数の数を変えれば3回に1回なども可能 table % for user in @users % tr class=" %= cycle "even", "odd" % " td ~~~ /td /tr % end % /table
https://w.atwiki.jp/railstutorial/pages/13.html
ゼロからデプロイまで このページを編集 初めの一歩、環境構築 1章では環境構築を行っていく。Githubのアカウント作成やHerokuへのデプロイもあるが、ここはRailsの学習とは直接関係がないので難しければやらなくても問題ない。 1.2.2までの手順は下のリンクの通りに行うとほぼ問題なく環境構築ができるはず。 Windowsユーザーの場合 Macユーザーの場合 Linuxユーザーの場合 Windowsを使っている いますぐMacへ乗り換えよう。というわけにもいかないだろうが、RailsTutorialで紹介しているRailsインストーラーはお勧めできない。Windows環境でRailsを扱うことは初学者にはハードルが高い。 Windows環境だと余計なエラーが出やすくなるし、それを解決した知識が開発現場で役に立つこともほぼないので無駄に時間をかけるだけ。 WindowsのPCしかないという人は、VirtualBoxなどを使ってLinuxの仮想環境を構築するのをおすすめする。仮想環境ならば無茶ができるしLinuxを使わないエンジニアはあまりいないだろうし、こちらのほうが断然おすすめ。 Macをつかっている まずはHomebrewをインストールしよう手順 次に必要なライブラリをインストールする $ brew install libtool libxslt libksba openssl libyaml それからrbenvとruby-buildをインストールしよう $ brew install rbenv ruby-build Ruby2.0.0をインストール MacにはもともとRubyが入っているが、そのままだとRailsとの相性が悪い場合がある。 $ rbenv install 2.0.0-pxxx (xxxの数字はrbenv install --list で一覧表示して一番大きいのを指定すればいい) homeディレクトリの.bash_profileの最後に以下の分を追加する eval "$(rbenv init -)" sourceコマンドを実行して上の変更を読み込む $ source .bash_profile Rubyのバージョンを変更する $ rbenv global 2.0.0-pxxx $ rbenv rehash Rails4.0.5をインストール $ gem install rails --version 4.0.5 --no-rdoc --no-ri $ rbenv rehash ※gemコマンドでinstallやupdateを実行時には --no-rdoc --no-ri のオプションを付けるとドキュメントがインストールされないのでインストール時間を短縮できる。 それぞれのインストールディレクトリを確認する $ which ruby 実行結果: ~/.rbenv/shims/ruby $ which rails 実行結果: ~/.rbenv/shims/rails $ which gem 実行結果: ~/.rbenv/shims/gem もしもうまくいっていない場合は、rbenv globalが実行されていない、rbenv rehashが実行されていないなどが考えられるので確認してみよう。 その他のエラーが出た場合はコメント欄に記述を。(自己解決した場合も記述いただけると今後の皆さんのためになるので是非書き込んでください) Linuxを使っている まずは必要なライブラリやソフトウエアをインストールしよう(途中でエラーが出たらその都度追加していこう) $ sudo apt-get install zlib1g-dev build-essential libssl-dev libreadline-dev git rbenvとruby-buildのインストール $ sudo apt-get install rbenv ruby-build apt-getが使えない場合 ディストリビューションによってはapt-getでrbenvとruby-buildがインストールできない。のでgitでcloneしよう。 $ git clone git //github.com/sstephenson/rbenv.git ~/.rbenv $ git clone https //github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build Rubyのインストール $ rbenv install 2.0.0-pxxx (xxxの数字はrbenv install --list で一覧表示して一番大きいのを指定すればいい) rbenvのセットアップ $ echo eval "$(rbenv init -)" ~/.bash_profile (実行したらhomeディレクトリの.bash_profileにeval~がちゃんと書いてあるかcatコマンドなどで確認しよう) $ cat ~/.bash_profile (echoコマンドの内容が反映されているかの確認) $ source ~/.bash_profile(変更を読み込む) $ rbenv global 2.0.0-pxxx (xxxは上とあわせてね) $ rbenv rehash (インストールしたRubyをrbenv管理下のディレクトリに配置します) rails4.0.5のインストール $ gem install rails --version 4.0.5 --no-rdoc --no-ri $ rbenv rehash ※gemコマンドでinstallやupdateを実行時には --no-rdoc --no-ri のオプションを付けるとドキュメントがインストールされないのでインストール時間を短縮できる。 名前 コメント
https://w.atwiki.jp/divadiva/pages/93.html
Ruby関連の備忘録です。 rakeを使おうとすると"Could not find a JavaScript runtime"とかいいやがる RoRでAjaxとthickboxを連携する Windows環境でgemをインストールするときにRubyのコンパイル環境を要求される データベースの設定PostgreSQL関連 MySQL関連 Rails2.0でin_place_editorを使うと、InvalidAuthenticityTokenが発生する RoR2.3.2でgettextする インプレースエディタの選択リスト版を実装する ページネーション・プラグインをインストールする インプレースエディタを拡張する RailsアプリでREST通信する場合にInvalidAuthenticityTokenが出る rakeを使おうとすると"Could not find a JavaScript runtime"とかいいやがる 「JavaScriptのランタイムが無いよ」の解決策は、一般的には、libv8、therubyracer、execjsのgemをインストールしましょう、です。 しかし、 $ bundle exec gem list したらちゃんと表示されていて、どう考えてもtherubyracer等のJavaScriptランタイムはインストールされているのに、エラーが出る、という事態が発生することがあります。 これは、インストールされていないのではなくて、実行時エラーを発生していることが問題の現認である場合があります。次のコマンドを試してみましょう。 $ ruby -e "require execjs " autodetectメソッドがエラーを返していますか?(それを前提に話を進めます) execjs/runtimes.rbのautodetectメソッドを見てみます。 EXECJS_RUNTIME環境変数で指定されているランタイムか、あるいは適当に利用可能なランタイムを探しています。therubyracerがインストールされているはずなのにbest_availableメソッドがfalseを返しているのでしょうか?調べてみましょう。 RubyRacerRuntimeクラスのavailable?メソッドです(ruby_racer_runtime.rb)。 def available? require "v8" true rescue LoadError false end end v8ライブラリのロードに失敗しているのでしょうか?調べてみます。 $ ruby -e "require v8 " cannot restore segment prot after reloc Permission deniedとかエラーを吐いています。これについて調べるとわかることですが、どうやらSELinuxが邪魔をしているようです。 てことで、SELinuxが動作しているようであれば、停止しましょう。これで解決されるはずです。 ※このサイトのブログが参考(ていうかそのまま)になりました。ありがとうございました! Windows環境でgemをインストールするときにRubyのコンパイル環境を要求される たとえばPostgreSQLサーバへの接続アダプタであるpgパッケージをインストールする場合などがこのケースにあたります。コンパイル自体はgemのinstallコマンドで自動事項されるのですが、コンパイル環境だけは事前に整えておく必要があります。 UNIX系はともかく、Windowsの場合コンパイラの入手、準備などが慣れてないとよくわかりません。が、丁寧に解説してくれているサイトがありました。 コンパイラが準備できても、Ruby自体のヘッダファイルがないとコンパイルはできません。ActiveScriptRubyをインストールした場合、ヘッダファイルはインストールされていません。この場合、このサイトからASRDev18.msiをダウンロードしてインストール実行すればOKです。開発環境に必要なものが追加インストールできます。その際インストール先はActiveScriptRubyと同じにしておけばよいでしょう。 ちなみに、Visual C++ 2008 Express Editionを使用する場合、Rubyのconfig.hを書き換える必要があることはこのサイトでも解説されていますが、ASRDev18.msiを使用してヘッダ類をインストールした場合、config.hは RUBY-INST-DIR \lib\ruby\ VERSION \i386-mswin32 にあります。 データベースの設定 PostgreSQL関連 PostgreSQLのドライバはたくさん乱立していますが、ruby-pgをインストールすることにより接続できます。(もちろん他のgemでもいいですが) pgをgem installすると、pg.soというライブラリがインストールされますが、ただ require pg しただけでは、LoadError が発生し、ライブラリがないよ、といわれることがあります。これは単に pg.so の置き場所がRubyのライブラリロードパスに入ってないからです。 ruby -e puts $ で現在のロードパスを確認してください。 その中に pg.so の置き場所がなければロードできません。ロードパスの変更は、環境変数RUBYLIBを設定すればOKです。あるいは、コマンドラインからの起動時に「-I pg.soの置き場所 」と指定することも可能です。 ちなみに、このあたりのパスを通す仕組みはrubygemsに装備されているので、先に、 require rubygems してしまえば、このようなLoadErrorは無くなります。 また、Windowsの場合、pg.soが呼ばれるようになっても、libpq.dll が無いとまたもやエラーとなりますので、PostgreSQLのlibpq.dllの場所を環境変数PATHに加えておきましょう。 それでも、msvcr90.dll が無い、というエラーが出ることもあります。この場合、Rubyの Rubyインストールディレクトリ \1.8\lib\ruby\1.8\i386-mswin32\rbconfig.rb の、 CFLAGS -MD という箇所を -MT に修正して、再度 pg のインストールをすればOKです。 また、Solaris10やOpenSolarisでpgをインストールする際、/usr/ucb/installを要求されるかもしれません。この場合、 ln -s /usr/bin/ginstall /usr/ucb/install でソフトリンクを作って解決しちゃいましょう。 MySQL関連 MySQLがデフォルトと異なるインストール設定がなされている場合、Rubyから接続できない場合があります。たとえば、ソケットファイル名がデフォルトと異なる場合や、デフォルトと異なる場所に存在する場合は、下記のようにdatabase.ymlに書き加えてください。 socket /foo/bar/filename.sock Rails2.0でin_place_editorを使うと、InvalidAuthenticityTokenが発生する Rails2.0になってから、インプレースエディタなどが含まれているScript.aculo.usはコアモジュールから外されました。 ですので、外部プラグインとしてインストールするわけですが、いざ使おうとすると、データベース更新の段になって、InvalidAuthenticityTokenエラーが発生します。これはRails2.0になってからセキュリティが高められ、デフォルトでCSRF対策がなされているからですが、おかげでAjaxでデータベースに更新をかけるような操作(in_place_editorによる更新など)を行うと上記のようなエラーが発生してしまうわけです。 この解決法としてin_place_editorによる更新操作をセキュリティの対象外にしてしまうという安直な方法がネット上にころがっていたりしますが、それではセキュリティ的に問題ですので、このページにin_place_editorにパッチを当てる方法で解決しましょう。このページにも書いてありますが、パッチはここです。 RoR2.3.2でgettextする やり方はこのページを見てください。 、、、だけだと何なので、ちょっと捕捉しますと。 まずは、上記にしたがって、各種ファイルをロケール対応に書き換えていってください。もしvalidateが発する標準のエラーメッセージの日本語化だけが目的ですと、実際には特に何もする必要はありません。最初の設定をするだけでテーブルの列名以外は勝手に日本語化メッセージが表示されるようになります。 Rakefileについてですが、ユーザ独自のRakeタスクを標準のタスクに追加したい場合、 RAILS_HOME /lib/tasks 以下に、*.rake ファイルを作成し、上記URLにしたがってRakeタスクを記述して下さい。この際、ネームスペースを使用すると、よりいいでしょう。 namespace aaa do namespace bbb do desc 説明 task タスク名 do 実際の処理内容 end end end と記述すると、「aaa bbb タスク名」みたいに標準タスクっぽい感じで呼び出せます。 「*.pot」ファイルを生成するタスク(上記URLでは rake updatepo)を実行したあと「*.pot」ファイルに日本語リソースを記述し、「*.po」ファイルを作成します。そしてまたRakeタスクで GetText.create_mofiles して、「*.po」ファイルから「*.mo」ファイルを生成します。 ちなみに「*.pot」ファイルをコピーして日本語リソースの元ファイルを作成する際に拡張子を「pot」のままで作成したために、GetText.create_mofiles がまったく機能せず、小一時間ばかり時間を無駄にしてしまったのはここだけの秘密です。。 ページネーション・プラグインをインストールする Rails2.0からwill_paginateはプラグインになったので、別途インストールが必要です。 will_paginateのホームページのインストール方法ページに従ってください。 一般に推奨されるインストール方法は、 gem sources -a http //gems.github.com gem install mislav-will_paginate ですが、 ここからtarballとしてダウンロードしてファイル展開でもよし。 インプレースエディタを拡張する ※Rails2.0以降の外部プラグイン版in_place_editingの使用を前提とします。 私がインプレースエディタを使用して感じる大きな不満点は下記の2点です。 データが空の場合編集モードにする手段がない モデルのバリデーションチェック機能が利用できない 一つ目については、lib/in_place_macros_helper.rb を改造することで対処しました。データがないと代わりに「N/A」を表示します。この「N/A」をクリックすることで編集モードに移行します。 具体的には、in_place_editor_fieldメソッドを書き換えています。 def in_place_editor_field(object, method, tag_options = {}, in_place_editor_options = {}) tag = ActionView Helpers InstanceTag.new(object, method, self) tag_options = { tag = "span", id = "#{object}_#{method}_#{tag.object.id}_in_place_editor", class = "in_place_editor_field"}.merge!(tag_options) in_place_editor_options[ url] = in_place_editor_options[ url] || url_for({ action = "set_#{object}_#{method}", id = tag.object.id }) # 改造した。データがない場合、「N/A」をデフォルト値にする。 tag_string = tag.to_content_tag(tag_options.delete( tag), tag_options) re = /( span.* )(.*)( \/span )/ md = re.match(tag_string) if md[2] == tag_string = sprintf("%sN/A%s", md[1], md[3]) end tag_string + in_place_editor(tag_options[ id], in_place_editor_options) end もう1つはこのページの通り変更したらいいかも。あるいはこっち?(未検証) RailsアプリでREST通信する場合にInvalidAuthenticityTokenが出る RailsアプリでRESTfulな作りにしていて、かつ、JavaScriptで直接HTTPRequest通信部を手書きにすることがあると思います。 たとえばクライアント側でYahooのYUIなどのAjaxコンポーネントを使っている場合は、REST通信はYAHOO.util.Connect.asyncRequest()で実現するわけです。 この際、GETではなくてPOSTなどサーバ側の状態変更を伴う操作を要求すると、RailsのCSRF対策機能が働いてしまい「authenticity tokenが無い!」という例外を発生してしまいます。 Railsの世界だけで作っている場合はCSRF対策など「裏方」処理を自動でやってくれるために気にすることはありませんが、別の仕組みを組み合わせた瞬間に、自分でめんどうをみなければなりません。 POSTの場合はURLパラメタとして「authenticity_token= Railsが生成したCDRFトークン 」を付加する必要があります。 実際の方法は、まずホームページを出力する *.html.erbにて、 %= hidden_field_tag authenticity_token , ERB Util.url_encode(form_authenticity_token) % を埋め込み、CSRFトークンをHiddenフィールドとしてクライアントに送信しておきます。 そしてクライアント側で動くJavaScriptにて、 "authenticity_token=" + uriEncodedCsrfElem.value をURLパラメータとして付加送信させます。 ちなみに、ERB Util.url_encode()の使用は必須です。JavaScriptのencodeURI()ですと、たとえば「+」をエンコーディングしてくれないため、受け取ったRails側でプラスを半角スペースにデコードしてしまい、結果的にトークン内容に食い違いが発生し、やはり例外が発生してしまいます。 ですので、クライアントに送る段階で先にURIエンコーディングしてしまうのです。 エステ 求人 債務整理
https://w.atwiki.jp/net-k/pages/16.html
情報広域 サイト名 URL 概要 備考 Ruby on Rails with oiax http //www.oiax.jp/ 作りながら覚える形式 ★★★ Ruby on Rails Guides http //guides.rubyonrails.org/ Rails3のマニュアル(本家) ★★★ 株式会社ウサギィwiki http //wiki.usagee.co.jp/ruby/rails 株式会社ウサギィwiki (かなり詳しい) ★★★ 一般情報 サイト名 URL 概要 備考 Railsのセッションの仕組み http //maskana.homedns.org/rails/pro/body/39 low level life(Blog) http //www.lowlevellife.com/?p=483 Rails3のモデルをER図出力
https://w.atwiki.jp/twitterror/
twitterではじめる Ruby on Rails @wikiとは twitterであつまったメンバーによる、 初心者の初心者による初心者のための勉強会の記録と、アウトプットのためのうぃきです。 勉強会の目的 プログラミングの経験がない! Rubyの経験がない! みたいなレベルから、 ちいさなweb serviceを一つつくってみるレベルまで成長すること。 やり方 環境を構築して、困ったことや学んだ事をシェアする Rails レシピブックのレシピをみて、週に1個位コードをかいて困ったことや学んだ事をシェアする web service、どんなのがいいかはなしあう つくってみる! メンバー メンバー参照
https://w.atwiki.jp/zunwiki/pages/15.html
RubyっていうかRuby on Rails カラムの追加をワンライナーで書く invalid multibyte char (US-ASCII)(マルチバイトの文字列がなんか変だよ)とか怒られる delayed_jobで出力されたエラーを見る方法 ポート3000番以外でrailsサーバを動かしたい時 改行して表示 rails入れたのに入ってないよと怒られる場合 組み合わせ検索 アップデートのなんか CAPTHAをいれてみる lambdaって何 grepってべんり ハッシュを含んだ配列の特定の要素でソート カラムの追加をワンライナーで書く (※Rails3系のみ) $ rails g migration AddColnameToTablename colname string 例: $ rails g migration AddSignInCountToUser sign_in_count integer http //rtanote.sakura.ne.jp/blog/?p=376 invalid multibyte char (US-ASCII)(マルチバイトの文字列がなんか変だよ)とか怒られる ☝( ◠‿◠ )☝「# -* coding utf-8 -*-と行頭に入れてそのファイルがどんな文字コードで書かれたか認識させてやれ…情弱め…」 delayed_jobで出力されたエラーを見る方法 delayed_job.logだと1行しか出力されないからね。仕方ないね puts DelayedJob.last.last_error ポート3000番以外でrailsサーバを動かしたい時 $ rails s -p ポート番号 デフォルトポートを変更したい時→http //d.hatena.ne.jp/zucay/20111121/1321856764 改行して表示 Model.all.map do |model| p model end もしくはpp rails入れたのに入ってないよと怒られる場合 $ rails -vってやったら Rails is not currently installed on this system. To get the latest version, simply type $ sudo gem install rails You can then rerun your "rails" command. っておこられる場合がある。 「もし次のように出力されたらインストールできていない。またはshellの設定が有効になっていないので、shellの設定を読み込み直すか、shellを起動し直そう。」 そんなわけで一旦iTermを閉じて開き直したら治った。 あとrbenv便利 http //rainbowdevil.jp/?p=1059 http //passingloop.tumblr.com/post/10512902196/difference-between-rbenv-and-rvm 組み合わせ検索 code_aとcode_bの組み合わせでModelのcode_1,code_2を検索し、入れ替えた場合でも抽出できる方法 Model.where( code_1 = ? AND code_2 = ? OR code_1 = ? AND code_2 = ? ,code_a, code_b,code_b, code_a) アップデートのなんか http //www.oiax.jp/rails/zakkan/how_to_apply_rails_security_updates.html http //www.tamurasouko.com/?p=748 CAPTHAをいれてみる http //ameblo.jp/taty-usa/entry-11474036774.html lambdaって何 http //d.hatena.ne.jp/zucay/20111025/1319539267 http //d.hatena.ne.jp/shunsuk/20090101/1230816826 http //www.stormconsultancy.co.uk/blog/development/todays-gotcha-dynamic-data-in-rails-scopes/ grepってべんり $ rake routes | grep なんか ハッシュを含んだ配列の特定の要素でソート arrayをpowerでソートしたい場合 array = [{ id = 1, power = 100}, { id = 2, power = 400}, { id = 3, power = 200}, { id = 4, power = 150}] array.sort_by{|x| x[ power]} 結果→ [{ id= 1, power= 100}, { id= 4, power= 150}, { id= 3, power= 200}, { id= 2, power= 400}] ※arr.sort{ |a, b| a[ power] = b[ power] }とかはできない
https://w.atwiki.jp/sevenlives/pages/956.html
ActiveSupport? ActiveRecord? Action Pack? Cookie Session Store? Scaffold ActiveScaffold? WEBrick? CoffeeScript
https://w.atwiki.jp/kplus/pages/101.html
ruby 概要 1995年、松本行弘氏が開発しリリースしたスクリプト言語。 2005年、David Heinemeier氏によって開発された「Ruby On Rails」が Ruby言語の火付け役になり、今や言語の中でもトップクラスの利用率と 人気を誇っている。 ステータス 最新バージョン リビジョン リリース日 価格 DL先 2.0.0 p195 2013/05/14 無償 http //www.ruby-lang.org/ja/ バージョンヒストリー 1.0 1996/12/25 1.2 1998/12/01 1.4 1999/08/01 1.6 2000/09/01 1.8 2003/08/01 1.9 2007/12/01 2.0 2013/02/24 ナレッジ 1 CentOSにRubyをインストールする
https://w.atwiki.jp/it_certification/pages/176.html
1. 履歴 2. はじめに 3. プロジェクトの作成3.1. プロジェクトの作成 4. サンプルアプリケーションの作成4.1. 但し書き 4.2. scaffoldの作成 4.3. テーブル作成 4.4. WebRickの実行 1. 履歴 2010/09/04 初稿 2. はじめに Ruby on Railsで簡単なサンプルアプリケーションを作成し、Railsが正常に動作する事を確認します。 rails 2.3.8 で動作確認を行った手順です。バージョンが違う場合は、適宜手順を読み替える必要があります。 3. プロジェクトの作成 3.1. プロジェクトの作成 「ファイル」→「プロジェクトの作成」を押下します。 「Ruby」「Ruby on Rails アプリケーション」を選択し、「次へ」を押下します。 「プロジェクト名」を入力し(何か適当な名前をつけて下さい)、「Ruby プラットフォーム」を選択し、「次へ」を押下します。 「データベースアダプタ」を選択し(最も設定が簡単なsqliteがお勧めです)、「次へ」を押下します。 「Railsのバージョン」を選択し、「完了」を押下します。 画面左側にプロジェクトが作成された事を確認します。 4. サンプルアプリケーションの作成 4.1. 但し書き scaffoldはコマンド1つで、CRUD(Create, Read, Update, Delete)処理を備えたアプリケーションを作成する優れものコマンドです。 但し、「scaffoldはCreate, Read, Update, Deleteの処理を意識して1つずつ機能が作れなくなってしまう」という考え方から、Rails 2.0系以降は、非推奨という考えが高まっています。その流れによって、rails 1.0系とrails 2.0以降ではscaffoldの実行方法が大きく変わりました。検索エンジンでscaffoldの使い方を調べると、rails 1.0系の情報がヒットしやすいので注意が必要です。 4.2. scaffoldの作成 プロジェクト名を右クリックし、「生成」を押下します。 以下の通り入力し、「了解」を押下します。 ジェネレータ:scaffold 生成 モデル名:student (モデル名は単数形での入力が推奨です。モデル名の複数形のテーブル名が自動生成されます。) 属性ペア:id int name string 4.3. テーブル作成 詳細説明は省略しますが、rakeタスクを使用すると自動的にDBを作成する事ができます。 プロジェクト名を右クリックし、「Rake タスクを実行/デバッグ」を押下します。 フィルタに「db m」と入力してタスクを絞り込みます。「db migrate」を選択し、「実行」を押下します。 4.4. WebRickの実行 WebRick(Railsのアプリケーションサーバ)を起動します。プロジェクト名を右クリックし、「実行」を押下して下さい。 しばらく待つと自動的にWebRickのトップページが表示されます。もしも、自動的に表示されない場合は、以下URLをブラウザに入力して下さい。 http //localhost 3000/ 以下URLを入力し、CRUD(Create, Read, Update, Delete)が可能なアプリケーションが作成されている事を確認します。 http //localhost 3000/students/